2023-10-04 Python 3.12の新機能(その2) PEP 695: 型パラメータ文法
Python 3.12でも、型ヒントに新たな機能が追加されました。特に、PEP 695: 型パラメータ文法は、今後のPythonで広く使われることになるでしょう。
PEP 695: 型パラメータ文法¶
Python3.12では、ジェネリックスを使った型ヒントの書き方に大きな変化がありました。
これまで、Pythonの型ヒントはあくまで補助的な機能と位置づけられており、Python3.0で追加された PEP 3107:関数アノテーションで型ヒントが書けるようになってから、基本的には型ヒントのために文法を変更しない方針で拡張されて
2023-10-03 Python 3.12の新機能(その1) PEP 701: f文字列の形式定義
2022-10-24 Python 3.11の新機能(その12) Python本体の機能追加
Python 3.11でのPython本体への機能追加を紹介します。
PEP 657 – トレースバックの詳細エラー表示¶
これまで、Pythonスクリプトの実行中にエラーが発生すると、エラーが発生した行番号が表示されていました。
Traceback (most recent call last):
File "pep657.py", line 5, in <module>
f(1, 2, None, 4, 5)
File "pep657.py", line 2, in f
return a + b + c + d + e
TypeError: unsupported operand ty
2022-10-18 Python 3.11の新機能(その11) 標準ライブラリ
2022-10-11 Python 3.11の新機能(その10) 正規表現 - アトミックグループとPossessive指定子
Python 3.11 では、新しい正規表現として (?>...)
、*+
、 ++
、 ?+
、{m,n}+
が追加されました。
(?>...)
はアトミックグループと呼ばれる正規表現で、*+
、 ++
、 ?+
、{m,n}+
はそれぞれ既存の *
、+
、?
、{m,n}
にアトミックグループの機能をもたせた正規表現です。
従来の.*a
のような正規表現は、なるべく長い文字列とマッチするようになっています。たとえば、正規表現 .*a
は a
で終わる任意の文字列にマッチしますが、文字列 11a22a33abc
とマッチすると、11a
や 1122a
ではなく、一番長い